由 dbf 表空间文件恢复 Oracle 数据

您所在的位置:网站首页 oracle 删除dbf 由 dbf 表空间文件恢复 Oracle 数据

由 dbf 表空间文件恢复 Oracle 数据

#由 dbf 表空间文件恢复 Oracle 数据| 来源: 网络整理| 查看: 265

一、需求分析

服务器A中的数据库实例被删除,幸好dbf文件还在,遂准备由dbf文件恢复数据到服务器B续命,待恢复的数据库实例名为 orcl1

服务器B中的数据库为新安装,已经初始化好 orcl 实例,首先对比两个实例的dbf文件

↑ 服务器A中待恢复的 orcl1 实例dbf文件 ↑

 

↑ 服务器B中的 orcl 实例dbf文件 ↑ 

 

对比可知新增的dbf文件是PORTAL.DBF、SDE.DBF、WZYZT.DBF,猜测各自对应三个同名用户

思路就出来了:

1、新建orcl1实例

2、新增三个表空间文件

3、新增三个同名用户,分别授权

4、恢复数据查看校验

二、创建orcl1实例

1、打开 “开始 - 所有程序 - Oracle - OraDb11g_home1 - 配置和移植工具 - Database Configuration Assistant”

步骤 1:默认

步骤 2:默认

步骤 3:全局数据库名:orcl1,SID:orcl1

步骤 4:默认

步骤 5 填写管理员账户的密码

后面全部默认

确认开始创建orcl1实例

 done,使用 PL/SQL 进行连接测试

三、恢复dbf

1、使用 PL/SQL 连接到orcl1实例,创建表空间及用户,对用户授权

create tablespace portal datafile 'C:\app\Administrator\oradata\orcl1\portal.dbf' size 1024M; create tablespace sde datafile 'C:\app\Administrator\oradata\orcl1\sde.dbf' size 1024M; create tablespace wzyzt datafile 'C:\app\Administrator\oradata\orcl1\wzyzt.dbf' size 1024M; create user portal identified by portal default tablespace portal; create user sde identified by sde default tablespace sde; create user wzyzt identified by wzyzt default tablespace wzyzt; grant connect,dba,resource to portal; grant connect,dba,resource to sde; grant connect,dba,resource to wzyzt;

2、使用 sqlplus 以 sysdba 身份登录,对控制文件进行备份;

sqlplus /nolog(此处不能加分号,否则黑屏窗口会一闪而过)

conn /as sysdba 登录

执行 alter database backup controlfile to trace; 备份控件文件到trace文件 

找到oracle的安装目录,如:C:\app\Administrator,按修改时间降序,找到最近的trace文件(orcl1_ora_xxx.trc)备份好(建议使用Everything)

3、shutdown immediate 停止数据库实例

4、备份C:\app\Administrator\oradata目录下的该实例文件夹(例如:orcl),接着将该实例文件夹删除,必须是全部删除,在oradata文件夹下新建orcl1文件夹把需恢复的dbf拷贝到orcl1目录下。

5、执行 startup nomount,把数据库启动到nomount状态

6、从第2步备份出来trace文件中拷贝CREATE CONTROLFILE部分语句来重建控制文件:

红框 1 改为ARCHIVELOG

红框 2 因为前面是根据恢复的dbf创建了对应表空间,所以这里不用改,但还是需要确认一下

执行修改后的sql

CREATE CONTROLFILE REUSE DATABASE "ORCL1" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO03.LOG' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\SYSTEM01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\SYSAUX01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\UNDOTBS01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\USERS01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\PORTAL.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\SDE.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\WZYZT.DBF' CHARACTER SET ZHS16GBK ;

7、执行 recover database,这两个报错直接无视

8、执行 alter database open;

恢复完成,登录数据库进行验证

 

参考链接:http://blog.sina.com.cn/s/blog_a59b6d310102vat0.html

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3